首页 > 试题广场 >

杨辉三角

[编程题]杨辉三角
  • 热度指数:21649 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

KiKi知道什么叫杨辉三角之后对杨辉三角产生了浓厚的兴趣,他想知道杨辉三角的前n行,请编程帮他解答。杨辉三角,本质上是二项式(a+b)的n次方展开后各项的系数排成的三角形。其性质包括:每行的端点数为1, 一个数也为1;每个数等于它左上方和上方的两数之和。


输入描述:
第一行包含一个整数数n。 (1≤n≤30)


输出描述:

包含n行,为杨辉三角的前n行,每个数输出域宽为5。

示例1

输入

6

输出

    1
    1    1
    1    2    1
    1    3    3    1
    1    4    6    4    1
    1    5   10   10    5    1
n = int(input())
l = [1]
for i in range(1, n + 1):
    for j in l:
        print("%5d" % j, end="")
    l = [1] + [l[k] + l[k + 1] for k in range(len(l) - 1)] + [1]
    print()

发表于 2022-06-11 17:33:13 回复(0)
n = eval(input())
ls,ls1 = [],[]
ls2 = []
for i in range(n):
    for j in range(n):
        ls.append(0)
    ls1.append(ls)
    ls = []
for i in range(n):
    ls1[i][0] = 1
for i in range(1,n):
    for j in range(1,n):
        ls1[i][j] = ls1[i-1][j]+ls1[i-1][j-1]

for i in range(n):
    for j in range(n):
        ls1[i][j] = str(ls1[i][j])

for i in range(n):
    for j in range(n):
        if(i>=j):
            ls.append(ls1[i][j])
    ls2.append(ls)
    ls = []
for i in range(n):
    print(" ".join(ls2[i]))

发表于 2022-05-24 20:51:44 回复(1)
想了有十分钟,加油啊
n = int(input())
num = [[1] * i for i in range(1, n + 1)]
for i in range(n):
    for j in range(i + 1):
        if (i != 0 and i != 1) and (j != 0 and j != i):
                num[i][j] = num[i - 1][j - 1] + num[i - 1][j]
        print('{:5d}'.format(num[i][j]), end='')
    print()

发表于 2022-05-02 16:52:35 回复(0)
n = int(input())
arr = []
for i in range(n):    
    if i == 0:
        # 第一行
        arr.append([1])
    else:
        l = [1]
        for j in range(1,i+1):
            # 上方的数是否存在
            try:
                num = arr[i-1][j-1] + arr[i-1][j]
            except:
                num = arr[i-1][j-1]
            l.append(num)
        arr.append(l)
for r in arr:
    for c in r:
        print('{:>5d}'.format(c), end='')
    print()

发表于 2022-04-03 17:44:17 回复(0)
num = int(input())
li = [[1],[1,1]] 
for i in range(2,num):
    li.append([1]*(i+1))
    for j in range(1,i):
        li[i][j] = li[i-1][j] + li[i-1][j-1]
for i in range(num):
    for j in range(0,i+1):
        print('{:5}'.format(li[i][j]),end='')
    print()

发表于 2021-09-24 11:34:05 回复(0)

问题信息

上传者:牛客309119号
难度:
6条回答 5322浏览

热门推荐

通过挑战的用户

查看代码